Concurrent Abstract Predicates

نویسندگان

  • Thomas Dinsdale-Young
  • Mike Dodds
  • Philippa Gardner
  • Matthew J. Parkinson
  • Viktor Vafeiadis
چکیده

Abstraction is key to understanding and reasoning about large computer systems. Abstraction is simple to achieve if the relevant data structures are disjoint, but rather difficult when they are partially shared, as is often the case for concurrent modules. We present a program logic for reasoning abstractly about data structures that provides a fiction of disjointness and permits compositional reasoning. The internal details of a module are completely hidden from the client by concurrent abstract predicates. We reason about a module’s implementation using separation logic with permissions, and provide abstract specifications for use by client programs using concurrent abstract predicates. We illustrate our abstract reasoning by building two implementations of a lock module on top of hardware instructions, and two implementations of a concurrent set module on top of the lock module.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Impredicative Concurrent Abstract Predicates

We present impredicative concurrent abstract predicates – iCAP – a program logic for modular reasoning about concurrent, higherorder, reentrant, imperative code. Building on earlier work, iCAP uses protocols to reason about shared mutable state. A key novel feature of iCAP is the ability to define impredicative protocols; protocols that are parameterized on arbitrary predicates, including predi...

متن کامل

Concurrent Abstract Predicates – long version – ( Draft , submitted for publication )

Abstraction is key to understanding and reasoning about large computer systems. Abstraction is easy to achieve if the relevant data structures are disjoint, but rather difficult when they are partially shared, as is the case for concurrent modules. We present a program logic for reasoning abstractly about data structures that gives us a fiction of disjointness and permits compositional reasonin...

متن کامل

Verification of Protocols Using Presburger Array Theory

One of the verification methods of programs is to show certain predicates about program variables to be invariant. In general, it is undecidable whether or not a given predicate is invariant. In this paper, a class of concurrent program systems which include array variables is introduced, and a class of predicates about program variables is defined. The invariance problem for a predicate in the...

متن کامل

Compositional Abstraction for Concurrent Programs

We present a methodology for automatically constructing an abstraction of concurrent programs against safety specifications based on finite state machine. And then automatically extract an initial abstract model from source code using predicate abstraction and theorem proving. However, the process of extracting a finite model from a program using predicate abstraction can be exponential in the ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010